import axios from 'axios'
import { getToken } from '@/api'
const instance = axios.create({
    baseURL: import.meta.env.VITE_BASE_URL
})

instance.interceptors.request.use(function (config) {

    config.headers.token = localStorage.getItem('token')
    return config
}, function (err) {
    return Promise.reject(err)
})
instance.interceptors.response.use(function (data) {



    if ((data.data.code === -1 && data.data.msg === '信息校验失败') || data.data.statusCode === 401) {
        //  token无效
        //  1. 重新请求token了 
        // 2. 拿到新token 后  本地存储存起来
        // 3. 重新请求一次上次失败的接口  

        return new Promise((resolve,) => {

            getToken().then(res => {
                let token = res.data;
                localStorage.setItem('token', token)
                resolve(instance(data.config))
            })


        })

    }
    return data.data
}, function (err) {
    return Promise.reject(err)
})

export default instance

// /api/getSingerList